
Component({
    options: {
        addGlobalClass: true,  // 开启全局样式
    },
    // 组件的属性定义
    properties: {
        
    },
    // 组件的数据
    data: {
        userInfo: null,
        greetingMessage: '',  // 用来展示提示语
        currentDate: '',  // 当前年月日
        currentTime: '',  // 当前时分秒
        currentDay: '',   // 当前星期几
    },
    lifetimes: {
        // 组件实例进入页面节点树时触发
        attached() {
            // 初始化时更新一次提示语
            this.updateGreetingMessage();
            this.updateCurrentTime();
            // 设置定时器，每分钟更新一次提示语
            this.interval = setInterval(() => {
                this.updateGreetingMessage();
                this.updateCurrentTime();
            }, 1000); // 每秒更新一次
        },
        // 组件实例被从页面节点树移除时触发
        detached() {
            // 组件销毁时清除定时器
            if (this.interval) {
                clearInterval(this.interval);
            }
        }
      },
    // 组件需要调用的方法
    methods: {
        // 更新问候语
        updateGreetingMessage(){
            // 根据时段判断展示的问候语
            const currentHour = new Date().getHours(); // 获取当前小时数
            // 判断时间段并设置提示语
            let message = '';
            if (currentHour >= 6 && currentHour < 12) {
                message = '早上好！';
            } else if (currentHour >= 12 && currentHour < 18) {
                message = '下午好！';
            } else if (currentHour >= 18 && currentHour < 24) {
                message = '晚上好！';
            } else {
                message = '凌晨了，早点休息吧！';
            }
            // 设置data中的greetingMessage
            this.setData({
                greetingMessage: message
            });
        },
        updateCurrentTime() {
            const now = new Date();
            // 获取当前年月日
            const year = now.getFullYear();
            const month = now.getMonth() + 1; // 注意：月份从0开始，所以要加1
            const day = now.getDate();
            // 获取当前时分秒
            const hours = now.getHours();
            const minutes = now.getMinutes();
            const seconds = now.getSeconds();
            // 获取星期几，0为周日，1为周一，依此类推
            const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
            const weekDay = weekDays[now.getDay()];
            // 格式化时间为 `YYYY-MM-DD`
            const currentDate = `${year}年${this.formatNumber(month)}月${this.formatNumber(day)}日`;
            // 格式化时间为 `HH:MM:SS`
            const currentTime = `${this.formatNumber(hours)}:${this.formatNumber(minutes)}:${this.formatNumber(seconds)}`;
            // 更新数据
            this.setData({
                currentDate: currentDate,
                currentTime: currentTime,
                currentDay: weekDay,
            });
        },
        // 补充个位数为两位数（例如1变为01）
        formatNumber(n) {
            return n < 10 ? '0' + n : n;
        },
        // 创建雪花
        createSnowflakes() {
            const snowflakes = [];
            const numFlakes = 100; // 设置雪花的数量
            for (let i = 0; i < numFlakes; i++) {
            snowflakes.push({
                x: Math.random() * this.data.canvasWidth,  // 随机的雪花起始X坐标
                y: Math.random() * this.data.canvasHeight, // 随机的雪花起始Y坐标
                radius: Math.random() * 3 + 2,             // 雪花的大小
                speed: Math.random() * 2 + 1,              // 雪花的下落速度
                opacity: Math.random() * 0.5 + 0.5,        // 雪花的透明度
            });
            }

            this.setData({ snowflakes });
        },
    },
    // 生命周期方法(组件被插入页面时调用，在组件加载时自动调用 fetchData 方法)
    attached() {
        
    },
    // 组件的视图渲染完成时调用
    ready() {
        const userInfo = wx.getStorageSync('userInfo');
        this.setData({
            userInfo: userInfo
        });
    },
})